package modelo.tiempo;

import java.util.Observable;


public class Tiempo extends Observable {	
	
	private static Tiempo instancia= null;
	private Dia dia;
	private Hora hora;
	private TurnoLadron turnoDelLadron;
	
	private Tiempo(){
		dia= new Dia(1);
		hora= new Hora(7);
		turnoDelLadron = null;
	}
	private synchronized static void crearInstancia(){
		if (instancia == null ) {
			instancia = new Tiempo();
		}
	}
	public static Tiempo obtenerInstancia(){
		if (instancia == null){
			crearInstancia();
		}
		return instancia;
	}
	public static void borrarInstancia(){
		instancia = null;
	}
	public void aumentarTiempoEnHoras(int cantidadDeHoras){
		hora.aumentarHoras(cantidadDeHoras);
		if(turnoDelLadron != null){
			turnoDelLadron.aumentarHoras(cantidadDeHoras);
		}
		if ((dia.obtenerDia() == "Domingo") && (hora.obtenerHora() > 16)) turnoDelLadron.escaparDefinitivamente();
		setChanged();
		notifyObservers();
	}
	public void cambioDeDia(){
		dia.pasarAlDiaSiguiente();
		if (dia.obtenerDia().equals("Lunes")) turnoDelLadron.escaparDefinitivamente();
	}
	public int obtenerHora(){
		return (hora.obtenerHora());
	}
	public String obtenerDia(){
		return (dia.obtenerDia());
	}
	public void setearTurnoDelLadron(TurnoLadron turno){
		turnoDelLadron= turno;
	}
}
